package io;

import java.io.*;
/*
    缓冲流:是一对高级流,作用是加快读写效率
    1)BufferedInputStream:缓冲输入流
    2)BufferedOutputStream:缓冲输出流
    缓冲流读写快的原因:
    1)缓冲流内部有一个8KB的字节数组
    看着是一个字节一个字节的读写,单缓冲流已经转换为了块写
    缓冲流和使用才有意义:
    1)不同在高级流有不同的功能,但只有缓冲流才具有加速功能(块读写)
 */
public class CopyDemo3Buffered {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("daomei.jpg");
        BufferedInputStream bis = new BufferedInputStream(fis);
        FileOutputStream fos = new FileOutputStream("daomei_cp5.jpg");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        long start = System.currentTimeMillis();
        int d;
        while ((d=bis.read())!=-1){//使用缓冲流读取字节
            bos.write(d);
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕!耗时:"+(end-start)+"毫秒");
        bis.close();
        bos.close();//只需要关闭高级流,因为高级流中自动关闭低级流
    }
}
